package model.service;

import java.util.List;

import model.dao.IRespostaDAO;
import model.entity.Resposta;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * 
 * Resposta Service
 * 
 * @author Alex
 * 
 */
@Service(value = "respostaService")
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class RespostaService implements IRespostaService {

	// RespostaDAO is injected...
	@Autowired
	IRespostaDAO respostaDAO;

	/**
	 * Add Resposta
	 * 
	 * @param Resposta
	 *            resposta
	 */
	@Transactional(readOnly = false)
	@Override
	public void addResposta(Resposta resposta) {
		getRespostaDAO().addResposta(resposta);
	}

	/**
	 * Delete Resposta
	 * 
	 * @param Resposta
	 *            resposta
	 */
	@Transactional(readOnly = false)
	@Override
	public void deleteResposta(Resposta resposta) {
		getRespostaDAO().deleteResposta(resposta);
	}

	/**
	 * Update Resposta
	 * 
	 * @param Resposta
	 *            resposta
	 */
	@Transactional(readOnly = false)
	@Override
	public void updateResposta(Resposta resposta) {
		getRespostaDAO().updateResposta(resposta);
	}

	/**
	 * Get Resposta
	 * 
	 * @param int Resposta Id
	 */
	@Override
	public Resposta getRespostaById(int id) {
		return getRespostaDAO().getRespostaById(id);
	}

	/**
	 * Get Resposta List
	 * 
	 */
	@Override
	public List<Resposta> getRespostas() {
		return getRespostaDAO().getRespostas();
	}

	/**
	 * Get Resposta DAO
	 * 
	 * @return IRespostaDAO - Resposta DAO
	 */
	public IRespostaDAO getRespostaDAO() {
		return respostaDAO;
	}

	/**
	 * Set Resposta DAO
	 * 
	 * @param IRespostaDAO
	 *            - Resposta DAO
	 */
	public void setRespostaDAO(IRespostaDAO respostaDAO) {
		this.respostaDAO = respostaDAO;
	}
}
